

 MINUS:
  PUSH(FP);
  MOV(FP,SP);
  
  PUSH(R1); //save R1
  PUSH(R2); //save R1
  MOV(R1, FPARG(1)); //R1= n
  MOV(R0, INDD(FPARG(2),1)); //intialize R0=first param
 L_MINUS_LOOP:
  MOV(R2,FPARG(R1+1)); //move argument n to R2
  CMP(IND(R2),T_INTEGER); //check argument type
  JUMP_NE(TYPE_ERROR); 
  SUB(R0,INDD(R2,1)); //sub argument to R0
  ADD(R1,-1); //decrement n 
  CMP(R1, IMM(1)); //check if n is 1
  JUMP_NE(L_MINUS_LOOP);
  PUSH(R0);
  CALL(MAKE_SOB_INTEGER);
  DROP(1);
  POP(R2);
  POP(R1);
  POP(FP);
  RETURN;
